This invention is generally related to object oriented standardization and interoperatability among hardware and software products, and more particularly to implementation of an object request broker (xe2x80x9cORBxe2x80x9d) of the Common Object Request Broker Architecture (xe2x80x9cCORBAxe2x80x9d).
The Object Management Group (xe2x80x9cOMGxe2x80x9d) developed CORBA to allow interoperability among the large variety of existing hardware and software products. CORBA includes an interface definition language (xe2x80x9cIDLxe2x80x9d) and an application programming interface (xe2x80x9cAPIxe2x80x9d) that enable client/server object interaction within a specific implementation of an object request broker (xe2x80x9cORBxe2x80x9d).
A CORBA implementation employs ORBs located on both the client and the server, to create and manage client-server communications between objects. ORB""s are the key to the CORBA distributed object architecture. The ORB is a middle layer that establishes the client-server relationships between various objects. The ORB allows a client to transparently invoke a method on a server object that may be on the same machine, or on a different machine across a network. The ORB intercepts the client call and is responsible for locating an object that can implement the request, passing the appropriate parameters to the object invoking the objects method and returning the results. The ORBs allow objects on the client""s side to make requests of objects on the server side, without any prior knowledge of where those objects exists, what language they are in, or what operating system they are running on. The client need not be aware of the location of the object, the object""s programming language, the object""s operating system or any other aspects of the system that are not part of the object""s interface. Thus, the ORB provides interoperability between applications on different machines in heterogeneous distributed computing environments to interconnect multiple object systems.
Inter-ORB protocol (xe2x80x9cIIOPxe2x80x9d) is the current standard CORBA 2.0 protocol for ORB-to-ORB interworking. IIOP has also recently been added as the transport protocol for Java remote invocation (xe2x80x9cRMIxe2x80x9d). Thus, CORBA enables invocations of methods on distributed objects residing anywhere on a network, just as if they were local objects. Additional material about CORBA is available through OMG""s web site at www.omg.org, as well as other sites such as www.developer.com.
The CORBA generic inter-ORB protocol (xe2x80x9cGIOPxe2x80x9d) is designed to work with high band width connections. The GIOP is not suited for the relatively low band width wireless connections that are becoming ever more popular. Compression can facilitate the transmission of GIOP packets over low bandwidth connections where the packets are later decompressed.
One aspect of the invention includes, replacing padding characters from a body of a GIOP message with paddding character replacement control sequences to compress the message before transmission. Another aspect of the invention includes, replacing paddding character replacement control sequences with padding characters in the body of a compressed GIOP message to decompress the message upon receipt.
A further aspect of the invention includes, replacing repetitive strings of characters in the body of a GIOP message with repetitive replacement control sequences to compress the GIOP message before transmitting. Yet a further aspect of the invention includes, replacing repetitive replacement control sequences with repetitive sequences of values in the body of GIOP message for control sequences upon receipt of the message to decompress the message.
Thus, the GIOP message may be optimized so as to carry it over a low bandwidth connection, such as a wireless connection. The hardware and software can operate with regular GIOP packets and compressed GIOP packets over any GIOP supported transport, including IIOP. Backwards compatibility with existing ORB implementations is insured, while new ORB implementations supporting compressed GIOP (xe2x80x9cC-GIOPxe2x80x9d) can take full advantage of this concept.